using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel.Configuration;
using System.Xml.Serialization;

namespace Spike.ContractBuilder
{
    [Serializable]
    public class ServiceHostEndpoint
    {
        public ServiceHostEndpoint()
        {
        }

        public ServiceHostEndpoint(ServiceEndpointElement endpoint)
        {
            _name = endpoint.Name;
            _endpointElement = endpoint;
        }

        private ServiceEndpointElement _endpointElement;

        [XmlIgnore()]
        public ServiceEndpointElement EndpointElement
        {
            get { return _endpointElement; }
            set { _endpointElement = value; }
        }

        private string _name;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private List<string> _interfaceassemblies = new List<string>();
        private List<ServiceStub> _serviceAssemblies = new List<ServiceStub>();
        
        [XmlIgnore()]
        public List<string> InterfaceAssemblies
        {
            get { return _interfaceassemblies; }
            set { _interfaceassemblies = value; }
        }
        
        [XmlIgnore()]
        public List<ServiceStub> ServiceAssemblies
        {
            get { return _serviceAssemblies; }
            set { _serviceAssemblies = value; }
        }
    }
}
